﻿// 5383. 收集饰品.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>

/*
https://www.acwing.com/problem/content/5386/
贝茜最近沉迷某网络游戏。

该游戏最近更新了 m
 种饰品，编号 1∼m
。

饰品只能通过购买游戏内的宝箱获得。

该游戏推出了 n
 种宝箱，编号 1∼n
。

其中，第 i
 种宝箱的售价为 xi
 元，该宝箱包含 mi
 种不同的饰品 ei,1,ei,2,…,ei,mi
，购买该宝箱可以获得这 mi
 种饰品各一件。

但是，该游戏的宝箱并不是无条件购买的，对于第 i
 种宝箱，只有 VIP
 等级不低于 ki
 的用户才有资格购买。

贝茜现在的 VIP
 等级为 0
。

VIP
 等级只能花钱提升，每提升一级，需要花费 b
 元。

贝茜希望获得所有饰品，每种饰品至少获得一件。

同时，贝茜希望自己的总花费尽可能少。

请你计算，贝茜的总花费的最小可能值。

注意：总花费 =
 购买宝箱花费 +
 提升 VIP
 等级花费。

输入格式
第一行包含 3
 个整数 n,m,b
。

接下来 2n
 行，其中第 2i
 和 2i+1
 行用来描述第 i
 种宝箱的信息，第 2i
 行包含 3
 个整数 xi,ki,mi
，第 2i+1
 行包含 mi
 个两两不同的正整数 ei,1,ei,2,…,ei,mi
，表示该宝箱中包含的饰品种类。

输出格式
一个整数，表示总花费的最小可能值。

如果无法获得所有饰品，则输出 -1。

数据范围
前 6
 个测试点满足 1≤n≤5
。
所有测试点满足 1≤n≤100
，1≤m≤20
，1≤b≤109
，1≤xi≤109
，1≤ki≤109
，1≤mi≤m
，1≤ei,1,ei,2,…,ei,mi≤m
。

输入样例1：
2 2 1
100 1 1
2
100 2 1
1
输出样例1：
202
输入样例2：
3 2 5
100 1 1
1
100 1 1
2
200 1 2
1 2
输出样例2：
205
输入样例3：
1 2 1
1 1 1
1
输出样例3：
-1
*/
int main()
{
    std::cout << "Hello World!\n";
}
 